<?php
/*
 PING.INC.PHP by martin $ 2008/12/18 02:51:19
*/

checkADMIN();

$ping_ini = OD.'ping.ini.php';

$header = $body = '';

if(g_('del') != ''){
 include ($ping_ini); # get $PING_LIST
 $tar = rawurldecode(str_replace(array('---','___'), array('.','%'), g_('del')));
 $new_list = array();
 foreach ($PING_LIST as $i=>$list){
  if(strstr($list, $tar)){
   list($deleted,) = explode('|', $list);
   continue;
  }
  $new_list[] = $list;
 }
 if(isset($deleted)){
  rewrite_ini($ping_ini, $new_list);
  exit(g_('del').','.$deleted.' を更新リストから削除しました。');
 } else exit('削除ミス！');
}

if(g_('site') != '' && g_('status') != ''){
 include ($ping_ini); # get $PING_LIST
 $tar = rawurldecode(str_replace(array('---','___'), array('.','%'), g_('site')));
 $new_list = array();
 foreach ($PING_LIST as $i=>$list){
  if(strstr($list, $tar)){
   list($s1,$s2,$s3,$s4) = explode('|', $list);
   $new_list[] = implode('|', array($s1,$s2,$s3,g_('status')==1?0:1,NL));
   continue;
  } else $new_list[] = $list;
 }
  rewrite_ini($ping_ini, $new_list);
  echo g_('site').','.$s1.' の更新時PING発射を'.(g_('status') ? 'オフ' : 'オン').'にしました。';
  exit;
}

if(p_('mode')=='ping'){                         # PING SITES
 include ($ping_ini); # get $PING_LIST
 if(p_('source-ping-site') != '' && p_('ping-site1') != '' && p_('ping-site2') != ''){
  $new_list = array();
  foreach ($PING_LIST as $list){
   list(,$pingTarget,,) = explode('|', $list);
   if($pingTarget==rawurldecode(p_('source-ping-site', 0))){
    $new_list[] = implode('|', array(p_('ping-site1'), p_('ping-site2'), p_('ping-site3'), "1", NL));
    continue;
   } else $new_list[] = $list;
  }
  rewrite_ini($ping_ini, str_replace('http://', '', $new_list));
  showMessage("PINGサイトの修正をしました");
 }

 if(p_('added_pings') != ''){
  $added_pings = array();
  $ap = explode('`', p_('added_pings', 0)); # 追加分
  $ap = str_replace('http://', '', $ap);
  foreach ($ap as $a){
   if(trim($a)=='') continue;
   list($p, $i, $n) = explode('|', $a);
   $hit = preg_grep('{'.$i.'}', $PING_LIST);
   if(!empty($hit)) continue;
   $PING_LIST[] = "$p|$i|$n|1|".NL;
  }
  rewrite_ini($ping_ini, $PING_LIST);
  showMessage("更新サイトを追加しました");
 }
}

/* pingサイトの追加・編集 */

if(v_('mode')=='ping'){
 include $ping_ini;
 $body .=<<<__HTML
  <style type="text/css">
   #edit-ping-site-area table { margin: .5em .5em 1em .5em; background: url(Images/grad.png); border: solid 1px #555; }
   #edit-ping-site-area input[type=text], input.txt { 
    border: solid 1px #333; padding: 2px;
    font: 500 14px arial;
   }
   #edit-ping-site-area p { background: url(Images/check.png) left 1px no-repeat; padding-left: 20px;}
   img { cursor: pointer; }
   #add-pingsites { overflow: auto; width: 100%; }
   #ping-table { text-align: center; font:500 90% verdana; margin: 1.5em auto; background: #fff;
                 border: 1px solid #aaa; padding: 2px;}
  </style>
  <form action="admin.php" method="post">
  <fieldset>
  <legend>更新Pingサイトの編集</legend>
  <div class="hidden">
   <input type="hidden" name="mode" value="ping" />
   <script type="text/javascript">/*<![CDATA[*/
    var status1 = (new Image()).src = 'Images/checked.png';
    var status0 = (new Image()).src = 'Images/blocked.png';
    _link=function(url){window.open(url,'_blank'); return false;}
    my_confirm_ajax = function(text, val){
     text += " を削除しますか？";
     if(!confirm(text)){
      return false;
     } else {
      oParts.server.get('admin.php?mode=ping&type=ajax&del='+val, function(ret){
       o('#' + ret.split(/,/)[0]).away();
       showMessage(ret.split(/,/)[1]);
      }
      );
      return false;
     }
    }
    updateStatus = function(site){
     var v = /checked/.test(oParts.evt.target.src) ? 1 : 0;
     var s = v ? "更新の際のPING発射をオフにし" : "更新の際のPING発射をオンにし";
     if(!confirm(s+"ます")){
      return false;
     } else {
      oParts.server.get('admin.php?mode=ping&type=ajax&site='+site+'&status='+v, function(ret){
       showMessage(ret.split(/,/)[1]);
       o('#' + ret.split(/,/)[0]).$.childNodes[3].firstChild.src = (v?status0:status1);
      }
      );
      return false;
     }
    }
    editPingSite = function (site){
     var ss = site.split(/\|/);
     o("#source-ping-site").$.value = encodeURIComponent(ss[1]);
     o("#ping-site1").$.value = ss[0];
     o("#ping-site2").$.value = ss[1];
     o("#ping-site3").$.value = ss[2];
     o("#edit-ping-site-area").show();
    }
   /*]]>*/</script>
  </div>
  <h4 style="margin-top: 2em;">現在登録されているサイトです</h4>
  <table id="ping-table" style="width: auto;">
   <colgroup>
    <col style="min-width: 250px;" />
    <col style="width:50px;" />
    <col style="width:50px;" />
    <col style="width:50px;" />
   </colgroup>
   <tr class="header"><th>登録サイト</th><th> 編 集 </th><th> 削 除 </th><th> 状 態 </th></tr>

__HTML;
 foreach ($PING_LIST as $i=>$list){
  list($siteName, $pingTarget, $pingCheckSite, $status) = explode('|', $list);
  $tar = str_replace(array('.','%'), array('---','___'), rawurlencode($pingTarget));
  $body .= '   <tr id="'.$tar.'"><td style="padding: 1px 5px 1px 10px;">'.($pingCheckSite!=''?'<a href="#" title="更新サイトを新規に開きます" onclick=\'_link("http://'.$pingCheckSite.'");return false;\'>'.$siteName.'</a>':$siteName).'</td><td class="center"><img onclick="editPingSite(\''.$list.'\');return false;" src="Images/edit-comment.png" alt="Edit" title=" 編 集 " /></td><td class="center"><img onclick="return my_confirm_ajax(\''.$siteName.'\',\''.$tar.'\');" src="Images/del.png" alt="Delete" title=" 削 除 " class="icon16x16" /></td><td class="center">'.($status?'<img onclick="return updateStatus(\''.$tar.'\',1);" src="Images/checked.png" class="icon18x18" alt="active" />':'<img onclick="return updateStatus(\''.$tar.'\',0);" src="Images/blocked.png" class="icon18x18" alt="inactive" />').'</td></tr>'.NL;
 }
 $body .=<<<__HTML
  </table>
  <div style="text-align:left;padding:1em; margin: auto; width: 600px;">
   <div id="edit-ping-site-area" style="display: none;">
    <p>登録済みのPINGサイトの編集をします</p>
    <p>修正後に、右の更新アイコンをクリックすれば、変更が反映されます</p>
    <p class="hidden"><input type="hidden" name="source-ping-site" id="source-ping-site" value="" /></p>
    <table>
     <tr class="header"><th>サイト名</th><th>PINGアドレス</th><th>更新チェックURL</th><th></th></tr>
     <tr>
      <td><input type="text" name="ping-site1" id="ping-site1" class="txt" size="20" value="" /></td>
      <td><input type="text" name="ping-site2" id="ping-site2" class="txt" size="35" value="" /></td>
      <td><input type="text" name="ping-site3" id="ping-site3" class="txt" size="35" value="" /></td>
      <td><input type="image" src="Images/refresh1.png" title=" 更 新 " style="vertical-align: middle;"
    onmouseover="this.src='Images/refresh2.png';"
    onmouseout="this.src='Images/refresh1.png'" alt="Add" /></td>
     </tr>
    </table>
   </div>
  <div>　追加は下のテキストエリアで。１行１サイトで適切なURLをどうぞ。指定形式は，
    <p class="exp"><span>表示サイト名|PINGアドレス|新着チェックアドレス(オプション)</span></p>
  です。PINGアドレスに続いてそのサイトの新着URLを半角パイプ（|）で区切って続けて入力すれば自動的にリンクが作成されます。
  <p class="p2em center">
  （例）<span class="alert">Weblogs.com|http://rpc.weblogs.com/RPC2|http://www.weblogs.com/</span></p>
  　追加したPINGサーバーは，記事入力の画面でも確認できます。
  </div>
  <div style="width: 90%; margin: auto;">
   <textarea name="added_pings" value="" id="add-pingsites" cols="55" rows="4"></textarea>
  </div>
    <p class="center" style="margin: 1em auto 1em auto;">
  <input type="image" src="Images/reload1.png" title=" 追 加 "
    onmouseover='this.src="Images/reload2.png"'
    onmouseout='this.src="Images/reload1.png"' alt="Refresh"/>
  </p>
 </fieldset>
 </form>
__HTML;
}

return $DIVISION['body'] .= $header.$body;

?>